//!@author denglibin
//!@date 2025/6/3 16:54
//!@desc

use proc_macro::table_name;

use derive_builder::Builder;
use proc_macro::GetFieldNames;
use proc_macro::HaveFieldType;
use proc_macro::StructToMap;
use serde::{Deserialize, Serialize};
use sqlx::FromRow;



use my_trait::MustHaveTableName;
use my_trait::MustHaveFieldType;
use my_trait::Struct2Map;

#[derive(Debug, FromRow, Serialize, Deserialize)]
#[derive(Builder, GetFieldNames, StructToMap, HaveFieldType)]
#[table_name("ES")]
pub struct Es{
    pub DM: Option<String>,
    pub TI: Option<String>,
    pub AU: Option<String>,
    pub AF: Option<String>,
    pub KY: Option<String>,
    pub CL: Option<String>,
    pub AB: Option<String>,
    pub DI: Option<String>,
    pub SN_P: Option<String>,
    pub SN_O: Option<String>,
    pub JN: Option<String>,
    pub FacetJN: Option<String>,
    pub AJN: Option<String>,
    pub JC: Option<String>,
    pub JK: Option<String>,
    pub PY: Option<String>,
    pub PD: Option<String>,
    pub VL: Option<String>,
    pub ISS: Option<String>,
    pub PG: Option<String>,
    pub SZ: Option<String>,
    pub PU: Option<String>,
    pub RF: Option<String>,
    pub PDFFILENAME: Option<String>,
    pub UPDATETIME: Option<String>,
    pub md5: Option<String>,
    pub TPITableName: Option<String>,
    pub ADDdate: Option<String>,
    pub xxzx_id: i64
}